package com.yunpeng.dynamic.page.dao.mapper;

import com.yunpeng.dynamic.page.dao.model.BaseDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * IRelationMapper
 *
 * @author : Moore(hemw)
 * @date : 2020-03-26
 */
public interface IRelationMapper<T extends BaseDO> {
    /**
     * 根据设置的实体属性获取实体列表
     * 最大数量100
     *
     * @param map
     * @return
     */
    List<T> queryForList(@Param(value = "conditionMap") Map<String, Object> map);

    /**
     * 根据id获取实体
     *
     * @param id
     * @return
     */
    T getById(Long id);

    /**
     * 新增实体
     *
     * @param t
     * @return 自增id
     */
    Long add(T t);

    /**
     * 更新实体
     *
     * @param id
     * @param params
     * @return 影响数量
     */
    Integer update(@Param("id") Long id, @Param("params") Map<String, Object> params);

    /**
     * 删除实体
     *
     * @param id
     * @return 影响数量
     */
    Integer delete(Long id);
}
